package com.erp.erp_servers.warehouse;

import com.erp.erp_entitys.warehouse.entity.TransferEntity;
import com.erp.erp_entitys.warehouse.req.QueryTransferReq;
import com.erp.erp_entitys.warehouse.req.StatisticsTransferAndContractInfoReq;
import com.erp.erp_entitys.warehouse.req.StatisticsTransferInStockInfoReq;
import com.erp.erp_entitys.warehouse.rsp.StatisticsTransferAndContractInfoRsp;
import com.erp.erp_entitys.warehouse.rsp.StatisticsTransferInStockInfoRsp;

import java.util.List;

/**
 * @ClassName : ITransferService
 * @Description : 调拨接口
 * @Author : lst
 * @Date: 2020-07-31 13:45
 */
public interface ITransferService {

    /**
     * 通过实体作为筛选条件查询
     *
     * @param transfer 实例对象
     * @return 对象列表
     */
    List<TransferEntity> queryAll(TransferEntity transfer);

    /**
     * 通过条件查询调拨对象
     * @param req 查询条件实体对象
     * @return 调拨集合
     */
    List<TransferEntity> queryTransferList(QueryTransferReq req);

    /**
     * 新增数据
     *
     * @param transfer 实例对象
     * @return 影响行数
     */
    int insert(TransferEntity transfer);

    /**
     * 通过id获取调拨对象
     * @param id 调拨id
     * @return 调拨对象
     */
    TransferEntity getTransferById(Integer id);

    /**
     * 修改数据
     *
     * @param transfer 实例对象
     * @return 影响行数
     */
    int update(TransferEntity transfer);

    /**
     * 外销调拨明细统计
     * @param req 实例对象
     * @return 外销调拨明细统计
     */
    List<StatisticsTransferAndContractInfoRsp> statisticsTransferAndContractInfo(StatisticsTransferAndContractInfoReq req);

    /**
     * 调拨仓库入库详情统计
     * @param req 实例对象
     * @return 调拨仓库入库详情统计
     */
    List<StatisticsTransferInStockInfoRsp> getStatisticsTransferInStockInfo(StatisticsTransferInStockInfoReq req);
}
